/*
 * @Author: your name
 * @Date: 2021-10-16 21:51:52
 * @LastEditTime: 2021-10-16 22:20:05
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \luogu\动态规划\背包\01背包\P1734 最大约数和\main.cpp
 */
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;

//获取n的约数和
int g(int n);

//f[i][j] 前i个数字 对于开销j获得的最大约数和
int f[1010][1010];
//ff[i] 开销i获得的最大约数和
int ff[1010];

int main(){
    int n;
    cin >> n;

    for(int i=1; i<=n; i++){
        // for(int j=0; j<=n; j++){
        //     f[i][j] = f[i-1][j];
        //     if(j >= i){
        //         f[i][j] = max(f[i-1][j],f[i-1][j-i]+g(i));
        //     }
        // }
        for(int j=n; j>=i; j--){
            ff[j] = max(ff[j],ff[j-i]+g(i));
        }
        //j<i f[j]没有新的收益 不考虑
    }
    // cout << f[n][n] << endl;
    cout << ff[n] << endl;
    return 0;
}

int g(int n)
{
    int sq = sqrt(n);
    // cout << "sq=" << sq << endl;
    int sum = 0;
    for(int i=1; i<=sq; i++){
        if(n%i == 0){
            sum = sum + i+ n/i;
        }
    }
    if(sq*sq == n){
        sum -= sq;
    }
    return sum-n;
}